#include "network.h"
#include "air720.h"
#include "mqtt.h"

//#include "system.h"

NET_STRU net;

void NET_Init(void)
{
	u8 isok;
	net.status = NO_CONNECT;
	isok = NET_Conn_TCP_Server((u8 *)ServerIP,ServerPort);
	if(isok != 0)	net.status = LUCENCY_TRANSMIT;
}

u8 NET_ReceivePro(void)
{
	return 0;
}
u8 NET_ReportPro(void)
{
	return 0;
}

u8 NET_TCP_SendData(u8 * buffer,u16 size)
{
	return 0;
}

u8 NET_EntryLucencyTransmitState(void)
{
	return 0;
}

u8 NET_JSON_CMD_Process(u8 * json_str)
{
	return 0;
}

u8 NET_Conn_TCP_Server(u8 * ip,u16 port)
{
	u8 isok;

	AIR720_CLOSE_PWR();
	delay_ms(500);
	AIR720_RESET_PIN();	
	AIR720_OPEN_PWR();
	delay_ms(500);
	
	isok = AIR_WaitReday();
	if(isok) return 1;
	
	printf("发送参数指令，等待模块正常 \r\n");
	isok = AIR720_COMM_Cmd(10, "AT\r\n", "OK", 500);
	if(isok) return 1;
	/* 确保模块工作正常 */
	/* 查询SIM卡状态 */
	printf("执行: 查询 SIM 卡状态 命令 \r\n");

	isok = AIR720_COMM_Cmd(25,"AT+CPIN?\r\n", "OK", 500);						
	if(isok) return 1;
	/* 信号质量 */
	printf("执行: 查询型号质量 命令 \r\n");
	isok = AIR720_COMM_Cmd(10,"AT+CSQ\r\n", "OK", 500);							
	if(isok) return 2;
	/* 网络注册信息 */
	printf("执行: 查询网络注册信息 命令 \r\n");
	isok = AIR720_COMM_Cmd(10,"AT+CREG?\r\n", "OK", 500);						
	if(isok) return 3;
	/* GPRS网络注册状态 */
	printf("执行: 查询 GPRS 网络注册状态 命令 \r\n");
	isok = AIR720_COMM_Cmd(10,"AT+CGREG?\r\n", "OK", 500);					
	if(isok) return 4;
	//确保附着上
	printf("执行: 查询网络附着状态 命令 \r\n");
	isok = AIR720_COMM_Cmd(10,"AT+CGATT?\r\n", "+CGATT: 1", 500);		
	if(isok) return 5;
	
	/* TCP设置 */
	//配置为快发模式
	printf("执行: 配置为快发模式 命令 \r\n");
	isok = AIR720_COMM_Cmd(10,"AT+CIPQSEND=1\r\n", "OK", 500);  			
	if(isok) return 6;
	/* 配置TCPIP应用模式为透传模式 */
	printf("执行: 配置TCPIP应用模式为透传模式 命令 \r\n");
	isok = AIR720_COMM_Cmd(10,"AT+CIPMODE=1\r\n", "OK", 500);					
	if(isok) return 7;
	/* 设置接入点,联通移动默认CMIOT */
	printf("执行: 设置接入点为移动联通接入点 命令 \r\n");
	isok = AIR720_COMM_Cmd(10,"AT+CSTT=1,\"CMIOT\"\r\n", "OK", 500);	
	if(isok) return 8;
	//激活移动场景(或 发起 GPRS 或 CSD 无线连接)
	printf("执行: 激活移动场景 命令 \r\n");
	isok = AIR720_COMM_Cmd(10,"AT+CIICR\r\n", "OK", 500);							
	if(isok) return 9;
	/* 获取IP */
	printf("执行: 获取IP  命令 \r\n");
	isok = AIR720_COMM_Cmd(10,"AT+CIFSR\r\n", ".", 500);							
	if(isok) return 10;
	/* 连接服务器 */
	printf("执行: 查询下链接状态 命令 \r\n");
	isok = AIR720_COMM_Cmd(10,"AT+CIPSTATUS\r\n", "OK", 500);//查询下链接状态
	if(isok) return 11;
	
//	AIR720_COMM_Cmd(10,"AT+CIPSTART=\"TCP\",\"180.97.80.55\",\"12415\"\r\n", "CONNECT OK", 200);
	char temp_str[128];
	printf("执行: 连接远程服务器 命令 \r\n");

	isok = AIR720_ConnecteService("106.15.100.2",ServerPort,3,3000);

	if(isok) return 12;
	
	return isok;
}
